﻿using System;
using System.Collections.Generic;
using Microsoft.TeamFoundation.WorkItemTracking.Client;
using Microsoft.TeamFoundation.WorkItemTracking.Controls;
using Microsoft.VisualStudio.TeamFoundation;
using Microsoft.TeamFoundation.VersionControl.Client;
using Microsoft.VisualStudio.TeamFoundation.WorkItemTracking;
using System.Collections;

namespace TeamReview.Services
{
	public interface ITFSService
	{
		int LastItemAssociated { get; set; }
		Guid LastQueryGuid { get; set; }
		int LastReviewReplayed { get; set; }
		string LastUserAssigned { get; set; }
		string CurrentUserDisplayName { get; }
        string TFSProjectName { get; }
		bool IsTFSProject { get; }
		Guid LastReviewQuery { get; set; }

		void LoadGridWithLinkedWorkItems(ref WorkItemResultGrid grid, int id);

		List<string> GetAvailableTeamWorkItemTypes();
		List<string> GetTeamUsers();
		List<string> GetTeamWorkItemFields(string workItemType);

		WorkItemCollection GetAvailableQueryWorkItems(Guid queryGuid);
		IDictionary<String, StoredQuery> GetAvailableTeamQueries();

		WorkItem GetWorkItem(int id);
		WorkItem CreateWorkItem();
		void ShowWorkItem(int id);

		void SetTeamProject(TeamProject teamProject);
		
		event TeamProjectChangeEventHandler TeamProjectChanged;
     event WorkItemChangeEventHandler WorkItemChanged;

	  void DocumentService_DocumentAdded(object sender, DocumentService.DocumentServiceEventArgs e);
    void DocumentService_DocumentRemoved(object sender, DocumentService.DocumentServiceEventArgs e);
			


	}
}
